/******************************************
@Description:风控 员工 新增/离职/删除
交换机=staff.setAddLeaveLeDeleteStaff
@Time : 2020/11/13 13:39
@Author :lixiaojun
*******************************************/
package main

import (
	"context"
	"encoding/json"
	"git.900sui.cn/kc/base/utils"
	"git.900sui.cn/kc/kcgin"
	"git.900sui.cn/kc/kcgin/logs"
	"git.900sui.cn/kc/rabbitmq"
	"git.900sui.cn/kc/rpcinterface/client/risk"
	risk2 "git.900sui.cn/kc/rpcinterface/interface/risk"
	staff2 "git.900sui.cn/kc/rpcinterface/interface/staff"
	"git.900sui.cn/kc/rpcinterface/interface/task/staff"
	"github.com/streadway/amqp"
)

func main() {
	rpcbbm := new(risk.BusBasicMonth).Init()
	defer rpcbbm.Close()
	rpcbbia := new(risk.BusBasicIndusAvg).Init()
	defer rpcbbia.Close()

	rpcbbaa := new(risk.BusBasicAccumulative).Init()
	defer rpcbbaa.Close()

	logs.Info("Environment Variable:MSF_ENV:", kcgin.KcConfig.RunMode)
	new(utils.KcLog).GetInstance(kcgin.AppConfig.String("risk.log.setAddLeaveLeDeleteStaff"))
	err := rabbitmq.Rabbitmq.Consume(kcgin.AppConfig.String("risk.queue.setAddLeaveLeDeleteStaff"), func(msg amqp.Delivery) {
		var res staff.ArgsSetAddLeaveLeDeleteStaff
		if err := json.Unmarshal(msg.Body, &res); err != nil {
			return
		}
		var reply bool
		if res.Status != staff2.STAFF_DELETE { //统计员工新增和离职率
			if err := rpcbbm.StatisticsStaffAddRateRpc(context.Background(), &risk2.ArgsStatisticsStaffAddRate{StaffId: res.StaffId}, &reply); err != nil {
				utils.Logerr.Printf("统计员工新增或离职率任务错误，staffId:%d error:%s\n", res.StaffId, err.Error())
			}
		}
		//员工新增、离职、删除
		if err := rpcbbia.RiskForSetStaff(context.Background(), &res.StaffId, &reply); err != nil {
			utils.Logerr.Printf("统计员工员工新增、离职、删除任务错误，staffId:%d error:%s\n", res.StaffId, err.Error())
		}

		//添加 预付卡风险管理系统-统计企业员工人数
		if err := rpcbbaa.StaffNumRpc(context.Background(),&res.StaffId,&reply); err !=nil {
			logs.Error("添加 预付卡风险管理系统-统计企业员工人数，失败信息：\n", res.StaffId, err.Error())
		}

		utils.Logerr.Printf("统计员工 新增/离职/删除任务成功，staffId:%d", res.StaffId)
	})

	if err != nil {
		utils.Logerr.Printf("统计员工 新增/离职/删除任务失败 err: %s", err.Error())
	}
}
